#ifndef __BOIDS_H__
#define __BOIDS_H__

#include <GL/glut.h>

#define MAPW          2048
#define MAPH          2048
#define APP_WIDTH     1024
#define APP_HEIGHT    1024

#define BITMAP_DIM    MAPW

#define N_LIMIT                 2000
#define BOID_N_BODIES           12000
#define N_COPS                  50
#define BOID_SPEED              0.0002
#define GHOUL_SPEED             0.0055
#define GHOUL_ACCELERATION      0.8
#define HUNGER_SCATTER_LIMIT    100
#define HUNGER_EAT_LIMIT        (HUNGER_SCATTER_LIMIT / 2)
#define NDIST                   0.08
#define GHOUL_CANDIDATE_LIMIT   0.4
#define GHOUL_ATTACK_LIMIT      0.006
#define COP_CANDIDATE_LIMIT     0.06
#define COP_ATTACK_LIMIT        0.006
#define BOID_N_COLOR_PARAM      3
#define SPACE                   0.04

#define PI                      3.141593
#define NORTH                   PI / 2
#define EAST                    0
#define SOUTH                   3 * PI / 2
#define WEST                    PI

#define STATE_HUMAN 1.0
#define STATE_GHOUL 2.0
#define STATE_COP   3.0
#define STATE_PANIC 4.0
#define STATE_DEAD  5.0

enum DirSync {
	NO_SYNC,
	SYNC
};

enum BoidStatus {
	BOID_HUMAN,
	BOID_GHOUL
};

void initOther(void);
void initBoids(void);
void drawAllBoids(void);
void makeBoidsUpdate(void);

#endif  /* __BOIDS_H__ */
